// Generated from C:\Users\N42\workspace\mgr\grammar\AlloyANTLR4Grammar.g4 by ANTLR 4.1
package pl.edu.pw.elka.dzielins.revanalyzer.alloy.io.grammar;
import org.antlr.v4.runtime.misc.NotNull;
import org.antlr.v4.runtime.tree.ParseTreeVisitor;

/**
 * This interface defines a complete generic visitor for a parse tree produced
 * by {@link AlloyANTLR4GrammarParser}.
 *
 * @param <T> The return type of the visit operation. Use {@link Void} for
 * operations with no return type.
 */
public interface AlloyANTLR4GrammarVisitor<T> extends ParseTreeVisitor<T> {
	/**
	 * Visit a parse tree produced by {@link AlloyANTLR4GrammarParser#binOp}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitBinOp(@NotNull AlloyANTLR4GrammarParser.BinOpContext ctx);

	/**
	 * Visit a parse tree produced by {@link AlloyANTLR4GrammarParser#scope}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitScope(@NotNull AlloyANTLR4GrammarParser.ScopeContext ctx);

	/**
	 * Visit a parse tree produced by {@link AlloyANTLR4GrammarParser#paragraph}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitParagraph(@NotNull AlloyANTLR4GrammarParser.ParagraphContext ctx);

	/**
	 * Visit a parse tree produced by {@link AlloyANTLR4GrammarParser#blockOrBar}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitBlockOrBar(@NotNull AlloyANTLR4GrammarParser.BlockOrBarContext ctx);

	/**
	 * Visit a parse tree produced by {@link AlloyANTLR4GrammarParser#arrowOp}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitArrowOp(@NotNull AlloyANTLR4GrammarParser.ArrowOpContext ctx);

	/**
	 * Visit a parse tree produced by {@link AlloyANTLR4GrammarParser#sigExt}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitSigExt(@NotNull AlloyANTLR4GrammarParser.SigExtContext ctx);

	/**
	 * Visit a parse tree produced by {@link AlloyANTLR4GrammarParser#block}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitBlock(@NotNull AlloyANTLR4GrammarParser.BlockContext ctx);

	/**
	 * Visit a parse tree produced by {@link AlloyANTLR4GrammarParser#unOp}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitUnOp(@NotNull AlloyANTLR4GrammarParser.UnOpContext ctx);

	/**
	 * Visit a parse tree produced by {@link AlloyANTLR4GrammarParser#assertDecl}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitAssertDecl(@NotNull AlloyANTLR4GrammarParser.AssertDeclContext ctx);

	/**
	 * Visit a parse tree produced by {@link AlloyANTLR4GrammarParser#letDecl}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitLetDecl(@NotNull AlloyANTLR4GrammarParser.LetDeclContext ctx);

	/**
	 * Visit a parse tree produced by {@link AlloyANTLR4GrammarParser#open}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitOpen(@NotNull AlloyANTLR4GrammarParser.OpenContext ctx);

	/**
	 * Visit a parse tree produced by {@link AlloyANTLR4GrammarParser#name}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitName(@NotNull AlloyANTLR4GrammarParser.NameContext ctx);

	/**
	 * Visit a parse tree produced by {@link AlloyANTLR4GrammarParser#enumDecl}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitEnumDecl(@NotNull AlloyANTLR4GrammarParser.EnumDeclContext ctx);

	/**
	 * Visit a parse tree produced by {@link AlloyANTLR4GrammarParser#decl}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitDecl(@NotNull AlloyANTLR4GrammarParser.DeclContext ctx);

	/**
	 * Visit a parse tree produced by {@link AlloyANTLR4GrammarParser#module}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitModule(@NotNull AlloyANTLR4GrammarParser.ModuleContext ctx);

	/**
	 * Visit a parse tree produced by {@link AlloyANTLR4GrammarParser#factDecl}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitFactDecl(@NotNull AlloyANTLR4GrammarParser.FactDeclContext ctx);

	/**
	 * Visit a parse tree produced by {@link AlloyANTLR4GrammarParser#exprT}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitExprT(@NotNull AlloyANTLR4GrammarParser.ExprTContext ctx);

	/**
	 * Visit a parse tree produced by {@link AlloyANTLR4GrammarParser#exprH}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitExprH(@NotNull AlloyANTLR4GrammarParser.ExprHContext ctx);

	/**
	 * Visit a parse tree produced by {@link AlloyANTLR4GrammarParser#ref}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitRef(@NotNull AlloyANTLR4GrammarParser.RefContext ctx);

	/**
	 * Visit a parse tree produced by {@link AlloyANTLR4GrammarParser#sigQual}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitSigQual(@NotNull AlloyANTLR4GrammarParser.SigQualContext ctx);

	/**
	 * Visit a parse tree produced by {@link AlloyANTLR4GrammarParser#cmdDecl}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitCmdDecl(@NotNull AlloyANTLR4GrammarParser.CmdDeclContext ctx);

	/**
	 * Visit a parse tree produced by {@link AlloyANTLR4GrammarParser#compareOp}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitCompareOp(@NotNull AlloyANTLR4GrammarParser.CompareOpContext ctx);

	/**
	 * Visit a parse tree produced by {@link AlloyANTLR4GrammarParser#quant}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitQuant(@NotNull AlloyANTLR4GrammarParser.QuantContext ctx);

	/**
	 * Visit a parse tree produced by {@link AlloyANTLR4GrammarParser#typescope}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitTypescope(@NotNull AlloyANTLR4GrammarParser.TypescopeContext ctx);

	/**
	 * Visit a parse tree produced by {@link AlloyANTLR4GrammarParser#specification}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitSpecification(@NotNull AlloyANTLR4GrammarParser.SpecificationContext ctx);

	/**
	 * Visit a parse tree produced by {@link AlloyANTLR4GrammarParser#sigDecl}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitSigDecl(@NotNull AlloyANTLR4GrammarParser.SigDeclContext ctx);

	/**
	 * Visit a parse tree produced by {@link AlloyANTLR4GrammarParser#funDecl}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitFunDecl(@NotNull AlloyANTLR4GrammarParser.FunDeclContext ctx);
}